package com.settlement.system.common.enums;

/**
 * @author author
 */
public enum WpTypeEnum {

    /**
     * 空的构造方法
     */
    WpRequestTypeEnum() {

    };

    public enum URL_TYPE {
        /**
         * 销售/客退/其他明细
         */
        BIll_DETAIL("WP_BIll_DETAIL"),
        /**
         * 折扣明细
         */
        DISCOUNT_DETAIL("DISCOUNT_DETAIL"),
        /**
         * 差异明细
         */
        ITEM_DIFF_SOURCE("ITEM_DIFF_SOURCE");

        String name;

        URL_TYPE(String name) {
            this.name = name;
        }
    }

    public enum DIFF_TYPE {
        /**
         * 退供差异
         */
        RETURN_PROVE("退供差异", "RP"),
        /**
         * 非退供差异
         */
        NO_RETURN_PROVE("非退供差异", "NRP"),
        /**
         * 丢件
         */
        LOSE("丢件", "L"),
        /**
         * 价差税差
         */
        PRICE_RATE("价差税差", "PR"),
        /**
         * 手工录入
         */
        MANUAL("手工录入", "M"),
        /**
         * 补贴
         */
        ALLOWANCE("补贴", "A"),
        /**
         * 销售明细
         */
        SALE("销售明细", "SALE"),
        /**
         * 客退明细
         */
        RETURN("客退明细", "RETURN"),
        /**
         * 活动折扣-销售
         */
        DISCOUNT_SALE("活动折扣-销售", "DISCOUNT_SALE"),
        /**
         * 活动折扣-客退
         */
        DISCOUNT_RETURN("活动折扣-客退", "DISCOUNT_RETURN");

        String name;
        String no;

        DIFF_TYPE(String name, String no) {
            this.name = name;
            this.no = no;
        }

        public String getName() {
            return name;
        }

        public String getNo() {
            return no;
        }
    }

    public enum ORDER_TYPE {
        /**
         * 销售
         */
        SALE("销售", 1),
        /**
         * 客退
         */
        RETURN("客退", 2),
        /**
         * 其他
         */
        OTHER("其他", 3),
        /**
         * 活动折扣
         */
        DISCOUNT("活动折扣", 4),
        /**
         * 差异明细
         */
        DIFF("差异明细", 5);

        String name;
        Integer no;

        ORDER_TYPE(String name, Integer no) {
            this.name = name;
            this.no = no;
        }

        public Integer getNo() {
            return no;
        }

        public String getName() {
            return name;
        }
    }

    public enum PAGE_TAB {
        /**
         * 全部
         */
        ALL("全部"),
        /**
         * 汇总
         */
        HZ("汇总"),
        /**
         * 销售
         */
        XS("销售"),
        /**
         * 客退
         */
        KT("客退"),
        /**
         * 其他
         */
        QT("其他"),
        /**
         * 活动折扣
         */
        HDZK("活动折扣"),
        /**
         * 差异明细
         */
        CY("差异明细"),
        /**
         * 差异明细
         */
        CYDY("差异明细-导入");

        String name;


        PAGE_TAB(String name) {
            this.name = name;
        }


        public String getName() {
            return name;
        }
    }

    public enum BILL_NUMBER_TYPE {
        /**
         * 月结
         */
        MONTH("月结", "M"),
        /**
         * 进度
         */
        PROCESS("进度", "P"),
        /**
         * 人工
         */
        MANUAL("人工", "H"),
        /**
         * 经销账单
         */
        TOTAL("经销账单", "T"),
        /**
         * 经销账单
         */
        TGCY("退供差异账单", "TGCY");
        String name;
        String no;

        BILL_NUMBER_TYPE(String name, String no) {
            this.name = name;
            this.no = no;
        }

        public String getName() {
            return name;
        }

        public String getNo() {
            return no;
        }
    }

    public enum VOUCHER_SUMMARY {
        /**
         * 首期
         */
        FIRST_PEROID("首期", "FP"),
        /**
         * 首期提前
         */
        FIRST_PRE_PEROID("首期提前", "FPP"),
        /**
         * 全款
         */
        ALL_PAYMENT("全款", "AP"),
        /**
         * 尾款
         */
        TAIL_PAYMENT("尾款", "TP"),
        /**
         * 提前
         */
        BRING_FORWARD("提前", "BF");

        public String name;
        public String no;

        VOUCHER_SUMMARY(String name, String no) {
            this.name = name;
            this.no = no;
        }

        public String getName() {
            return name;
        }

        public String getNo() {
            return no;
        }
    }

    public enum PROCESS_STATUS {
        /**
         * 未匹配
         */
        fulling("填充数据", "F"),
        /**
         * 匹配完成
         */
        full_complete("填充完成", "FC"),
        /**
         * 财务确认
         */
        Sign("签收", "S"),
        /**
         * 推送POS
         */
        transfer("迁移入库", "T"),
        /**
         * 归档
         */
        complete("归档", "C"),
        /**
         * 推送POS异常
         */
        call_back_exception("回填异常", "CBE");     

        public String name;
        public String no;

        PROCESS_STATUS(String name, String no) {
            this.name = name;
            this.no = no;
        }

        public String getName() {
            return name;
        }

        public String getNo() {
            return no;
        }
    }

    public enum SOURCE_TYPE {
        /**
         * 销售与客退
         */
        detail("销售与客退", "DT"),
        /**
         * 折扣
         */
        discount("折扣", "DC"),
        /**
         * 手工差异账单
         */
        manual_item_diff("手工差异账单", "MID");

        public String name;
        public String no;

        SOURCE_TYPE(String name, String no) {
            this.name = name;
            this.no = no;
        }

        public String getName() {
            return name;
        }

        public String getNo() {
            return no;
        }
    }

    public enum FAS_CALLBACK {
        /**
         * 无
         */
        N("无", "N"),
        /**
         * 有
         */
        Y("有", "Y");

        public String name;
        public String no;

        FAS_CALLBACK(String name, String no) {
            this.name = name;
            this.no = no;
        }

        public String getName() {
            return name;
        }

        public String getNo() {
            return no;
        }
    }

    public enum DELIVERY_TYPE {
        /**
         * 不区分
         */
        not_distinguish(0, "不区分"),
        /**
         * 仓JITX
         */
        warehouse_jitx(1, "仓JITX"),
        /**
         * 仓JIT
         */
        jit(2, "仓JIT"),
        /**
         * 门店JITX
         */
        shop_jitx(3, "门店JITX");

        public String name;
        public Integer no;

        DELIVERY_TYPE(Integer no, String name) {
            this.name = name;
            this.no = no;
        }

        public String getName() {
            return name;
        }

        public Integer getNo() {
            return no;
        }

        public static Integer getNoByName(String name) {
            DELIVERY_TYPE[] deliveryTypes = values();
            for (int index = 0; index < deliveryTypes.length; index++) {
                if (deliveryTypes[index].getName().equals(name)) {
                    return deliveryTypes[index].getNo();
                }
            }
            return null;
        }


        public static String getNameByNo(Integer no) {
            DELIVERY_TYPE[] deliveryTypes = values();
            for (int index = 0; index < deliveryTypes.length; index++) {
                if (deliveryTypes[index].getNo().equals(no)) {
                    return deliveryTypes[index].getName();
                }
            }
            return null;
        }
    }

    public enum CUMULATIVE_IOS_AUDIT_MARK {
        /**
         * 否
         */
        NO("否", "1"),
        /**
         * 是
         */
        YES("是", "0");


        String name;
        String no;

        CUMULATIVE_IOS_AUDIT_MARK(String name, String no) {
            this.name = name;
            this.no = no;
        }

        public String getName() {
            return name;
        }

        public String getNo() {
            return no;
        }
    }

    public enum RETURN_TYPE {
        /**
         * 销售
         */
        wp_sale("销售", "WP-001"),
        /**
         * 客退
         */
        wp_return("客退", "WP-002"),
        /**
         * 活动折扣-销售
         */
        wp_discount_sale("活动折扣-销售", "WP-003"),
        /**
         * 活动折扣-客退
         */
        wp_discount_return("活动折扣-客退", "WP-004"),
        /**
         * 丢件
         */
        wp_lost("丢件", "WP-005"),
        /**
         * 退供差异
         */
        wp_refund_diff("退供差异", "WP-006"),
        /**
         * 非退供差异
         */
        wp_no_refund_diff("非退供差异", "WP-007"),
        /**
         * 价差税差
         */
        wp_tax_diff("价差税差", "WP-008");
        
        public String name;
        public String no;

        RETURN_TYPE(String name, String no) {
            this.name = name;
            this.no = no;
        }

        public String getName() {
            return name;
        }

        public String getNo() {
            return no;
        }


    }

}
